
import { IsNotEmpty, IsOptional, IsInt, } from 'class-validator';
import { BaseRequestListDto } from './baseRequestList.dto';
import { Type } from 'class-transformer';


export class CreateIndexInfoDto {

    /**状态(0-禁用,1-正常)*/
    @IsOptional()
    status?: number;


    /**字段名称(多选)*/
    @IsNotEmpty({ message: '字段名称(多选)不能为空' })
    filedName!: string;


    /**备注*/
    @IsOptional()
    comment?: string;


    /**索引类型(INDEX:普通索引, UNIQUE:唯一索引)*/
    @IsNotEmpty({ message: '索引类型不能为空' })
    indexType!: 'INDEX' | 'UNIQUE';

}

export class UpdateIndexInfoDto {
    @IsNotEmpty({ message: 'id不能为空' })
    id!: number;


    /**状态(0-禁用,1-正常)*/
    @IsOptional()
    status?: number;


    /**字段名称(多选)*/
    @IsOptional()
    filedName?: string;


    /**备注*/
    @IsOptional()
    comment?: string;


    /**索引类型(INDEX:普通索引, UNIQUE:唯一索引)*/
    @IsOptional()
    indexType?: 'INDEX' | 'UNIQUE';

}

export class QueryIndexInfoDto extends BaseRequestListDto {

    /**状态(0-禁用,1-正常)*/
    @IsOptional()
    status?: number;


    /**字段名称(多选)*/
    @IsOptional()
    filedName?: string;


    /**备注*/
    @IsOptional()
    comment?: string;


    /**索引类型(INDEX:普通索引, UNIQUE:唯一索引)*/
    @IsOptional()
    indexType?: 'INDEX' | 'UNIQUE';

}

export class DeleteIndexInfoDto {
    @IsNotEmpty({ message: 'ID列表不能为空' })
    @IsInt({ each: true, message: '每个ID必须是整数' })
    ids!: number[];
}


export class SelectOneIndexInfoDto {
    @IsNotEmpty({ message: 'ID不能为空' })
    id!: number;
}



export class IndexInfoResponseDto extends BaseRequestListDto {
    /**id*/
    @IsOptional()
    id?: number;

    /**创建时间*/
    @IsOptional()
    createdAt?: string;

    /**更新时间*/
    @IsOptional()
    updatedAt?: string;



    /**状态(0-禁用,1-正常)*/
    @IsOptional()
    status?: number;


    /**字段名称(多选)*/
    @IsOptional()
    filedName?: string;


    /**备注*/
    @IsOptional()
    comment?: string;


    /**索引类型(INDEX:普通索引, UNIQUE:唯一索引)*/
    @IsOptional()
    indexType?: 'INDEX'|'UNIQUE';

}
